package com.BXuan.LeetCode.数组.数组_前缀和;

/**
 * 303. 区域和检索 - 数组不可变
 * https://leetcode.cn/problems/range-sum-query-immutable/description/
 */
// 前缀和做法
public class NumArray {

    private int[] preNums;

    public NumArray(int[] nums) {
        preNums = new int[nums.length + 1];

        for (int i = 1; i < preNums.length; i++){
            preNums[i] = preNums[i - 1] + nums[i - 1];
        }
    }

    public int sumRange(int left, int right) {
        return preNums[right + 1] - preNums[left];
    }
}
// 普通做法
//public class NumArray {
//
//    private int[] preNums;
//
//    public NumArray(int[] nums) {
//        preNums = new int[nums.length + 1];
//
//        for (int i = 1; i < preNums.length; i++){
//            preNums[i] = preNums[i - 1] + nums[i - 1];
//        }
//    }
//
//    public int sumRange(int left, int right) {
//        return preNums[right + 1] - preNums[left];
//    }
//}
